/**
 * TODO <br>
 * 0.2: weijj:2019年6月1日 下午4:59:14:TODO <br>
 * @author  weijj
 * @since 2019年6月1日 下午4:59:14
 * @date 2019年6月1日 下午4:59:14
 * @version 0.1 初始为0.1,后续变更则修改
 */
package com.fdb.efp.esb.service.impl.sed.hj;

import com.fdb.efp.esb.common.client.resp.EsbRespServiceBean;
import com.fdb.efp.esb.common.constant.EsbBizEnums;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

import com.fdb.basic.framework.core.exception.BizException;
import com.fdb.efp.esb.service.bo.req.sed.hj.ReqSedQueryExecRateBean;
import com.fdb.efp.esb.service.bo.resp.sed.hj.RespSedQueryExecRateBean;
import com.fdb.efp.esb.service.client.ESBClientFactory;
import com.fdb.efp.esb.service.client.impl.LhxESBBeanCreator;
import com.fdb.efp.esb.service.facade.sed.hj.SedQueryExecRateService;


/**
 * 贷款执行利率查询
 * 
 * @author weijj
 * @since 2019年6月1日 下午4:59:14
 * @version 1.0
 */
@Service("sedQueryExecRateService")
public class SedQueryExecRateServiceImpl implements SedQueryExecRateService {

	Logger logger = LoggerFactory.getLogger(SedQueryExecRateServiceImpl.class);

	/**
	 * 贷款执行利率查询 <br>
	 * 0.1: weijj:2019年6月1日 下午5:03:56:新增 <br>
	 * 
	 * @author weijj
	 * @since 2019年6月1日 下午5:03:56
	 * @date 2019年6月1日 下午5:03:56
	 * @version 0.1
	 */
	@Override
	public RespSedQueryExecRateBean queryExecRate(ReqSedQueryExecRateBean reqSedQueryExecRateBean) throws Exception {
		// TODO Auto-generated method stub
		// 返回对象
		RespSedQueryExecRateBean respSedQueryExecRateBean = null;
		logger.info("根据浮动利率比：" + reqSedQueryExecRateBean.getFltIntRt() + "前往互金查询执行利率开始................");
		try {

			// 1.发送请求信息--> ESB
			EsbRespServiceBean esbRespServiceBean = ESBClientFactory.buildClient().withBody(reqSedQueryExecRateBean)
					.withTradeNo("30230003").withScene("05").withESBBeanFactory(LhxESBBeanCreator.getINSTANCE())
					.create().sendAndReceive();

			if (EsbBizEnums.RetCodeEnum.SUCCESS.VALUE
					.equals(esbRespServiceBean.getSysHead().getRetInfArry().get(0).getRetCd())) {
				respSedQueryExecRateBean = esbRespServiceBean.getBody(RespSedQueryExecRateBean.class);
				if (respSedQueryExecRateBean.getExecRate() == null) { // 若为空
					throw new BizException("调用贷款执行利率查询接口异常，返回执行利率为空！");
				}
			} else {
				throw new BizException(esbRespServiceBean.getSysHead().getRetInfArry().get(0).getRetMsg());
			}

		} catch (Exception e) {
			logger.error(e.getMessage());
			throw e;
		}
		logger.info("根据浮动利率比：" + reqSedQueryExecRateBean.getFltIntRt() + "前往互金查询执行利率结束!");
		return respSedQueryExecRateBean;
	}

}
